const { execSync } = require('child_process');
const path = require('path');

console.log('🚀 开始转换技能数据为xlsx格式...\n');

try {
    // 切换到项目根目录
    const projectRoot = path.resolve(__dirname, '..');
    process.chdir(projectRoot);
    
    console.log('📁 当前工作目录:', process.cwd());
    
    // 检查是否存在ts-node
    try {
        execSync('npx ts-node --version', { stdio: 'pipe' });
    } catch (error) {
        console.log('📦 安装ts-node...');
        execSync('npm install -g ts-node', { stdio: 'inherit' });
    }
    
    // 创建转换脚本
    const convertScript = `
import JsonToXlsx from './src/core/tool/jsonToXlsx';
import path from 'path';

async function main() {
    try {
        console.log('🎯 开始转换技能配置文件...');
        
        // 方法1: 直接从技能配置文件转换
        await JsonToXlsx.convertFromSkillFiles();
        
        // 方法2: 如果要从JSON文件转换，可以取消注释下面的代码
        // const jsonPath = path.resolve('./src/core/rpg/config/skills.json');
        // if (require('fs').existsSync(jsonPath)) {
        //     await JsonToXlsx.convertFromJsonFile(jsonPath, '技能配置_JSON');
        // }
        
        console.log('\\n🎉 转换完成！请查看 xlsx/游戏配置 目录下的文件。');
        
    } catch (error) {
        console.error('❌ 转换失败:', error);
        process.exit(1);
    }
}

main();
`;
    
    // 写入临时脚本文件
    const fs = require('fs');
    const tempScriptPath = path.join(projectRoot, 'temp-convert-script.ts');
    fs.writeFileSync(tempScriptPath, convertScript);
    
    console.log('📝 创建转换脚本...');
    
    // 运行转换脚本
    console.log('🔄 执行转换...\n');
    execSync(`npx ts-node ${tempScriptPath}`, { stdio: 'inherit' });
    
    // 清理临时文件
    fs.unlinkSync(tempScriptPath);
    
    console.log('\n✅ 所有操作完成！');
    
} catch (error) {
    console.error('❌ 执行失败:', error);
    process.exit(1);
} 